import axios from "axios";
import { ElMessage } from "element-plus"; // 引入提示框

let axiosurl = "";

// 如果为开发模式的时候执行的url，process.env.NODE_ENV,返回当前到底是 development 还是 production
if (process.env.NODE_ENV === "development") {
  axiosurl = process.env.VUE_APP_API;
} else {
  // 否则设置成其他模式（这里今后有很多判断）
  axiosurl = process.env.VUE_APP_API;
}

// 创建axios实例，赋值给常量 service
const service = axios.create({
  baseURL: axiosurl, // 配置基础地址
});

// 添加请求拦截器
service.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
service.interceptors.response.use(
  function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    // 在接受到响应的时候进行一些操作
    // 在请求结果返回的时候，先不显示错误的信息，先对响应状态码进行一些处理，给用户一个错误的提示信息。
    return response;
  },
  function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    // console.log("error", error.response.status);
    switch (error.response.status) {
      case 404:
        ElMessage.error("页面资源找不到！");
        break;
      case 500:
        ElMessage.error("服务器连接失败请稍后再试！");
        break;
      case 401:
        ElMessage.error("未授权！");
        break;
      default:
        ElMessage.error("未知错误！");
        break;
    }
    return Promise.reject(error);
  }
);

export default service;
